home *** CD-ROM | disk | FTP | other *** search
/ Developer Helper 1: Phil & Dave's Excellent CD / Excellent CD HFS.raw / Moof / Goodies / HyperCard Goodies / HyperCard Dev. ToolKit / XCMD.Sources / resetPort.p < prev    next >
Text File  |  1987-08-17  |  2KB  |  79 lines

  1. {$R-}
  2.  
  3. (*
  4.     resetSPort(port number, setting) -- Reset the serial port driver.
  5.     By Harry Chesley.  DO NOT call the author!  Contact Apple Developer 
  6.     Support on AppleLink "MacDTS" or on MCI "MacTech".
  7.  
  8.     ©Apple Computer, Inc. 1987
  9.     All Rights Reserved.
  10.  
  11.     To compile and link this file using Macintosh Programmer's Workshop,
  12.  
  13.     pascal -w resetPort.p
  14.     link -m ENTRYPOINT -o HyperTerm -rt XCMD=1 -sn Main=resetSPort resetPort.p.o "{MPW}"Libraries:interface.o
  15.     
  16. *)
  17.  
  18. {$S resetSPort }     { Segment name must be the same as the command name. }
  19.  
  20. unit DummyUnit;
  21.  
  22. interface
  23.  
  24. uses MemTypes, QuickDraw, OSIntf, HyperXCmd;
  25.  
  26. procedure EntryPoint(paramPtr: XCmdPtr);
  27.     
  28. implementation
  29.  
  30. type
  31.  
  32. Str31 = String[31];
  33.  
  34. procedure resetSPort(paramPtr: XCmdPtr); forward;
  35.  
  36. procedure EntryPoint(paramPtr: XCmdPtr);
  37.  
  38.     begin
  39.         resetSPort(paramPtr);
  40.     end;
  41.  
  42. procedure resetSPort(paramPtr: XCmdPtr);
  43.  
  44.     var portNumber: integer;
  45.         setting: integer;
  46.         inPort, outPort: integer;
  47.         str: Str255;
  48.  
  49.     {$I XCmdGlue.inc}
  50.  
  51.     procedure Fail(errMsg: Str255); { set theResult and quit }
  52.         begin
  53.             paramPtr^.returnValue := PasToZero(errMsg);
  54.             exit(resetSPort);
  55.         end;
  56.  
  57.     begin
  58.         if paramPtr^.paramCount <> 2 then Fail('parameter count is not 2');
  59.  
  60.         ZeroToPas(paramPtr^.params[1]^,str);        { First parameter is port number. }
  61.         portNumber := StrToNum(str);
  62.         if (portNumber < 1) or (portNumber > 2) then Fail('invalid port number');
  63.         ZeroToPas(paramPtr^.params[2]^,str);        { Second parameter is setting. }
  64.         setting := StrToNum(str);
  65.  
  66.         if portNumber = 1 then
  67.             begin
  68.                 inPort := -6; outPort := -7;
  69.             end
  70.         else
  71.             begin
  72.                 inPort := -8; outPort := -9;
  73.             end;
  74.         if (SerReset(inPort,setting) <> noErr) or (SerReset(outPort,setting) <> noErr) then
  75.             Fail('SerReset failed');
  76.     end;
  77.  
  78. end.
  79.